using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Produce.Application.DTO.Output
{
    /// <summary>
    /// 人员排班输出模型
    /// </summary>
    public class PersonScheduleOutput
    {
        /// <summary>
        /// ID
        /// </summary>
        public long Id { get; set; }

        /// <summary>
        /// 人员ID
        /// </summary>
        public long PersonId { get; set; }

        /// <summary>
        /// 人员姓名
        /// </summary>
        public string PersonName { get; set; }

        /// <summary>
        /// 日期
        /// </summary>
        public DateTime? Date { get; set; }

        /// <summary>
        /// 班次类型（0-休息，1-上班，2-加班，3-请假）
        /// </summary>
        public int Type { get; set; }

        /// <summary>
        /// 班次类型名称
        /// </summary>
        public string TypeName => Type switch
        {
            0 => "休息",
            1 => "上班",
            2 => "加班",
            3 => "请假",
            _ => "未知"
        };

        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime? CreatedAt { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        public string CreatedBy { get; set; }

        /// <summary>
        /// 更新时间
        /// </summary>
        public DateTime? UpdatedAt { get; set; }

        /// <summary>
        /// 更新人
        /// </summary>
        public string UpdatedBy { get; set; }
    }
}